1. Field of the Invention
This invention relates generally to a distributed router system and, more particularly, to enabling demand-based pooling of endpoint resources in a multi-application environment.
2. Description of the Background Art
Most companies doing business today employ one or more servers in order to handle their companies' computing needs. These servers may be located on-site or may be handled by a hosting service. A hosting service maintains a group of servers, or endpoints, and serves the computing needs of its various clients. As part of its service, the hosting entity will likely guarantee, among other things, that 1) a minimum number of sessions, or requests, by each client can be simultaneously served, 2) the latency incurred in handling the sessions, or requests, will be below a certain limit, and 3) the availability of the service over a particular time frame will be above a certain minimum.
In order to meet these service guarantees, the hosting service would typically allocate dedicated hardware to match the peak load for each of its various clients. While this is inherently inefficient and not cost-effective as most companies do not operate at peak load around the clock, sharing infrastructure has not been a viable alternative prior to this invention because sharing infrastructure implies that 1) multiple routers in the distributed router system would each attempt to assign an incoming session request to an endpoint, resulting in conflicting endpoint assignments, 2) each endpoint cache would constantly be changing in order to handle multiple applications, resulting in increased server latency, 3) preloaded resources, required by certain applications in order to preclude server latency, would be difficult to load onto constantly changing, non-dedicated endpoints; and 4) it would be difficult to comply with the minimum number of sessions guaranteed to each client. Therefore, there is a need for a system and method that enables demand-based pooling of endpoint resources in a multi-application environment while resolving the foregoing issues.